package com.note7_5;

import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;

public class Question6 {

	/*
	 * 把 1-10000内的所有质数 写入一个data.txt中，10个一行
	 * 质数概念：对于大于1的数，如果除了1和它本身，它不能再被其它正整数整除，那么我们说它是一个质数
	 * 一个数如果是比2大的偶数，则必不是质数
	 * 从3开始，步长为2，一直到n的算术平方根为止，都除不尽则为质数
	 */
	
	public static boolean isPrime(int num){
		if(num < 2){
			return false;
		}else if(num == 2 || num ==3){
			return true;
		}else if(num%2 == 0){
			return false;
		}else{
			for(int i = 3;i <=  Math.sqrt(num);i+=2){
				if(num%i == 0){
					return false;
				}
			}
			return true;
		}
	}
	
	public static void main(String[] args) {
		OutputStream os = null;
		try {
			int flag = 0;
			os = new FileOutputStream("D:/myeclipse/workpace/com/src/com/stu7_5/data.txt");
			for(int i = 1;i <= 10000;i++){
				if(isPrime(i)){
					String s = String.valueOf(i)+" ";
					os.write(s.getBytes("UTF-8"));
					flag ++;
					if(flag%10 == 0&&flag!=0){
						os.write('\r');
						os.write('\n');
					}
				}
			}
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally{
			if(os!=null){
				try {
					os.close();
				} catch (IOException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}
			System.out.println("计算并写入完成！");
		}
	}
}
